| Matching Comments and Strings |
| File1 Line# |
File2 Line# |
Comment/String |
| 1 | 1 | ASSEMBLY LANGUAGE VERSION OF THE CP/M CONSOLE COMMAND PROCESSOR |
| 3 | 3 | VERSION, 1.1 OCTOBER, 1976 |
| 5 | 5 | COPYRIGHT (C) 1976 |
| 6 | 6 | DIGITAL RESEARCH |
| 10 | 10 | TRUE IF DEBUGGING |
| 11 | 11 | BASE ADDRESS OF CCP |
| 12 | 12 | BASE OF DOS |
| 18 | 18 | TRANSIENT PROGRAM AREA BASE (TPA) |
| 19 | 19 | LAST TRANSIENT LOCATION + 1 |
| 29 | 29 | COPYRIGHT (C) 1976, DIGITAL RESEARCH |
| 31 | 31 | DISK ADDRESS FOR CURRENT DISK |
| 32 | 32 | PRIMARY BDOS ENTRY POINT |
| 33 | 33 | DEFAULT BUFFER |
| 34 | 34 | DEFAULT FILE CONTROL BLOCK |
| 36 | 36 | READ CHARACTER FUNCTION |
| 37 | 37 | PRINT CHARACTER FUNCTION |
| 38 | 38 | PRINT BUFFER FUNCTION |
| 39 | 39 | READ BUFFER FUNCTION |
| 40 | 40 | BREAK KEY FUNCTION |
| 41 | 41 | LIFT HEAD FUNCTION, (SHUGART SA3900 ONLY) |
| 42 | 42 | INITIALIZE BDOS FUNCTION |
| 43 | 43 | SELECT DISK FUNCTION |
| 44 | 44 | OPEN FILE FUNCTION |
| 45 | 45 | CLOSE FILE FUNCTION |
| 46 | 46 | SEARCH FOR FILE FUNCTION |
| 47 | 47 | SEARCH FOR NEXT FILE FUNCTION |
| 48 | 48 | DELETE FILE FUNCTION |
| 49 | 49 | DISK READ FUNCTION |
| 50 | 50 | DISK WRITE FUNCTION |
| 51 | 51 | FILE MAKE FUNCTION |
| 52 | 52 | RENAME FILE FUNCTION |
| 53 | 53 | RETURN LOGIN VECTOR |
| 54 | 54 | RETURN CURRENTLY SELECTED DRIVE NUMBER |
| 55 | 55 | SET DMA ADDRESS |
| 57 | 57 | CARRIAGE RETURN |
| 58 | 58 | LINE FEED |
59 211 | 59 211 | LEFT ARROW |
| 60 | 60 | END OF FILE |
| 61 | 61 | NUMBER OF DISKS |
| 63 | 63 | UTILITY PROCEDURES |
| 66 | 66 | PRINT CHARACTER, BUT SAVE B,C REGISTERS |
| 72 | 72 | PRINT STRING STARTING AT B,C UNTIL NEXT DOLLAR SYMBOL |
| 79 | 79 | OPEN THE FILE GIVEN, BY D,E |
| 82 | 82 | OPEN COMFCB |
| 83 | 83 | CLEAR NEXT RECORD TO READ |
| 86 | 86 | CLOSE THE FILE GIVEN BY D,E |
| 89 | 89 | SEARCH FOR THE FILE GIVEN BY D,E |
| 92 | 92 | SEARCH FOR THE NEXT OCCURRENCE OF THE FILE GIVEN BY D,E |
| 95 | 95 | SEARCH FOR COMFCB FILE |
| 98 | 98 | DELETE THE FILE GIVEN BY D,E |
| 101 | 101 | READ THE NEXT RECORD FROM THE FILE GIVEN BY D,E |
| 104 | 104 | READ THE COMFCB FILE |
| 107 | 107 | WRITE THE NEXT RECORD TO THE FILE GIVEN BY D,E |
| 110 | 110 | CREATE THE FILE GIVEN BY D,E |
| 113 | 113 | RENAME THE FILE GIVEN BY D,E |
| 116 | 116 | TRANSLATE CHARACTER IN REGISTER A TO UPPER CASE |
| 117 | 117 | RETURN IF BELOW LOWER CASE A |
| 118 | 118 | RETURN IF ABOVE LOWER CASE Z |
| 119 | 119 | TRANSLATED TO UPPER CASE |
| 121 | 121 | READ THE NEXT COMMAND INTO THE COMMAND BUFFER |
| 122 | 122 | CHECK FOR SUBMIT FILE |
| 124 | 124 | SCANNING A SUBMIT FILE |
| 125 | 125 | CHANGE DRIVES TO OPEN AND READ THE FILE |
| 127 | 127 | READ LAST RECORD(S) FIRST |
128 668 | 128 668 | CURRENT RECORD TO READ |
| 129 | 129 | END OF FILE IF LAST RECORD |
| 131 | 131 | DISK READ IS OK, TRANSFER TO COMBUF |
| 133 | 133 | LINE IS TRANSFERRED, CLOSE THE FILE WITH A |
| 134 | 134 | DELETED RECORD |
| 135 | 135 | ONE LESS RECORD |
| 137 | 137 | CLOSE WENT OK, RETURN TO ORIGINAL DRIVE |
| 141 | 141 | BREAK KEY DEPRESSED |
| 143 | 143 | NO SUBMIT FILE! CALL DEL$SUB |
| 144 | 144 | TRANSLATE TO UPPER CASE, STORE ZERO AT END |
| 146 | 146 | ENTER HERE FROM SUBMIT FILE |
| 147 | 147 | SET THE LAST CHARACTER TO ZERO FOR LATER SCANS |
| 148 | 148 | LENGTH IS IN B |
| 149 | 149 | END OF SCAN? |
| 150 | 150 | GET CHARACTER AND TRANSLATE |
| 153 | 153 | END OF SCAN, H,L ADDRESS END OF COMMAND |
| 154 | 154 | STORE A ZERO |
| 155 | 155 | READY TO SCAN TO ZERO |
| 158 | 158 | CHECK FOR A CHARACTER READY AT THE CONSOLE |
| 161 | 161 | CHARACTER CLEARED |
| 164 | 164 | LIFT THE HEAD ON THE SA3900 |
| 167 | 167 | GET THE CURRENTLY SELECTED DRIVE HUMBER TO REG-A |
| 170 | 170 | MOVE DATA FROM D, E TO H,L FOR C BYTES |
| 173 | 173 | SET DMA ADDRESS TO D,E |
| 176 | 176 | DELETE THE SUBMIT FILE, AND SET SUBMIT FLAG TO FALSE |
| 177 | 177 | RETURN IF NO SUB FILE |
| 178 | 178 | SUBMIT FLAG IS SET TO FALSE |
| 179 | 179 | ON DRIVE A TO ERASE FILE |
| 181 | 181 | BACK TO ORIGINAL DRIVE |
183 585 | 183 585 | CHECK SERIALIZATION |
| 184 | 184 | CHECK SIX BYTES |
| 187 | 187 | SERIAL NUMBER IS OK |
| 189 | 189 | ERROR IN, COMMAND STRING STARTING AT POSITION |
| 190 | 190 | 'STADDR' AND ENDING WITH FIRST DELIMITER |
| 191 | 191 | SPACE TO NEXT LINE |
| 192 | 192 | H,L ADDRESS FIRST TO PRINT |
| 193 | 193 | PRINT CHARACTERS UNTIL BLANK OR ZERO |
| 194 | 194 | NOT BLANK |
| 195 | 195 | NOT ZERO, SO PRINT IT |
197 506 | 197 506 | FOR ANOTHER CHARACTER |
| 198 | 198 | PRINT QUESTION, MARK, AND DELETE SUB FILE |
| 201 | 201 | RESTART WITH NEXT COMMAND |
| 203 | 203 | FCB SCAN, AND FILL SUBROUTINE (ENTRY IS AT FILLFCB BELOW) |
| 204 | 204 | FILL THE COMFCB, INDEXED BY A (0 OR 16) |
| 205 | 205 | SUBROUTINES |
| 206 | 206 | LOOK FOR A DELIMITER |
| 207 | 207 | NOT THE LAST ELEMENT |
| 208 | 208 | NON GRAPHIC |
| 209 | 209 | TREAT BLANK AS DELIMITER |
| 217 | 217 | DELIMITER NOT FOUND |
| 219 | 219 | DEBLANK THE INPUT LINE |
| 220 | 220 | TREAT END OF LINE AS BLANK |
| 223 | 223 | ADD A TO H,L |
| 227 | 227 | EQUIVALENT TO FILLFCB(0) |
| 230 | 230 | FCB RESCANNED AT END |
| 231 | 231 | CLEAR SELECTED DISK (IN CASE A;...) |
| 233 | 233 | COMMAND ADDRESS IN D,E |
| 234 | 234 | TO FIRST NON-BLANK CHARACTER |
| 235 | 235 | IN CASE OF ERRORS |
| 236 | 236 | D,E HAS COMMAND, H, L HAS FCB ADDRESS |
| 237 | 237 | LOOK FOR PRECEDING FILE NAME A, B: ... |
| 238 | 238 | USE CURRENT DISK IF EMPTY COMMAND |
| 239 | 239 | DISK NAME HELD IN B IF : FOLLOWS |
| 240 | 240 | SET DISK NAME IF , |
| 242 | 242 | SET CURRENT DISK |
| 243 | 243 | BACK TO FIRST CHARACTER OF COMMAND |
| 246 | 246 | SET DISK TO NAME IN REGISTER B |
| 247 | 247 | MARK AS DISK SELECTED |
| 248 | 248 | PAST THE , |
| 250 | 250 | SET THE FILE NAME FIELD |
| 251 | 251 | FILE NAME LENGTH (MAX) |
| 252 | 252 | NOT A DELIMITER |
| 253 | 253 | MUST BE 7'S |
| 254 | 254 | TO DEC COUNT |
| 256 | 256 | STORE CHARACTER TO FCB! INX D |
| 257 | 257 | COUNT DOWN, LENGTH! JNZ SETNAM0 |
| 259 | 259 | END OF NAME, TRUNCATE REMAINDER |
| 260 | 260 | SET TYPE FIELD IF DELIMITER |
| 265 | 265 | SET THE TYPE FIELD |
| 266 | 266 | SKIP THE TYPE FIELD IF NO |
| 267 | 267 | PAST THE , TO THE FILE TYPE FIELD |
| 268 | 268 | SET THE FIELD FROM THE COMMAND BUFFER |
| 270 | 270 | SINCE * SPECIFIED! JMP SETTY2 |
| 272 | 272 | NOT A *, SO COPY TO TYPE FIELD |
| 274 | 274 | DECREMENT COUNT AND GO AGAIN |
| 277 | 277 | END OF TYPE FIELD, TRUNCATE |
| 278 | 278 | TRUNCATE TYPE FIELD |
| 281 | 281 | PAD THE TYPE FIELD WITH BLANKS |
| 284 | 284 | END OF THE FILENAME/FILETYPE FILL, SAVE COMMAND ADRESS |
| 285 | 285 | FILL THE REMAINING FIELDS FOR THE FCB |
| 288 | 288 | SET NEW STARTING POINT |
| 290 | 290 | RECOVER THE START ADDRESS OF THE FCB AND COUNT 7'$ |
| 291 | 291 | B=0, C=8+3 |
| 293 | 293 | ? FOUND, COUNT IT IN, B! INR B |
| 295 | 295 | NUMBER OF ?'S IN C, MOVE TO A AND RETURN, WITH FLAGS |
| 298 | 298 | INTRINSIC FUNCTION, NAMES (ALL ARE FOUR CHARACTERS) |
| 299 | 299 | DIR |
| 300 | 300 | ERA |
| 301 | 301 | TYPE |
| 302 | 302 | SAVE |
| 303 | 303 | REN |
| 304 | 304 | INTRINSIC FUNCTION, LENGTH |
| 308 | 308 | LOOK FOR INTRINSIC FUNCTIONS (COMFCB HAS BEEN FILLED) |
| 309 | 309 | C COUNTS INTRINSICS AS SCANNED |
| 310 | 310 | DONE WITH SCAN?!! RNC |
| 311 | 311 | N0, MORE TO SCAN |
| 312 | 312 | BEGINNING OF NAME |
| 313 | 313 | LENGTH OF MATCH IS IN B |
| 314 | 314 | MATCH? |
| 315 | 315 | SKIP IF NO MATCH |
| 317 | 317 | LOOP WHILE MATCHING |
| 319 | 319 | COMPLETE MATCH ON NAME, CHECK FOR BLANK IN FCB |
| 320 | 320 | OTHERWISE MATCHED |
| 321 | 321 | WITH INTRINSIC NUMBER IN A |
| 323 | 323 | MISMATCH, MOVE TO END OF INTRINSIC |
| 326 | 326 | TRY NEXT INTRINSIC |
| 327 | 327 | TO NEXT INTRINSIC NUMBER |
| 328 | 328 | FOR ANOTHER ROUND |
| 330 | 330 | CHECK FOR A SUBMIT FILE (REGISTER A HAS DISK NAME) |
| 331 | 331 | CLEAR SUBMIT IF NOT DISK A |
| 332 | 332 | OPEN SUBMIT FILE - IF POSSIBLE |
| 334 | 334 | SUBMIT FILE OPENED, SET SUBMIT TO TRUE |
| 337 | 337 | CLEAR SUBMIT VARIABLE |
| 341 | 341 | ENTER HERE FROM BOOT LOADER |
| 342 | 342 | SAVE INITIAL DISK NUMBER |
| 343 | 343 | RECOVERED DISK NUMBER TO C |
| 344 | 344 | SAVE $ FLAG FROM INITIALIZATION, (00 IF NO $ FILE) |
| 345 | 345 | DISK NUMBER IN ACCUMULATOR |
| 346 | 346 | PROPER DISK IS SELECTED, NOW CHECK SUB FILES |
| 347 | 347 | RECOVER $ FILE FLAG FROM INITIALIZATION |
| 348 | 348 | ORIGINAL DISK NUMBER IS IN C |
| 349 | 349 | 00 BECOMES 01, FF BECOMES 00! ORA C ;OR DISK NUMBER |
| 350 | 350 | ACCUMULATOR CONTAINS 00 IF ON DISK 0, AND $ FILE PRESENT |
| 351 | 351 | OTHERWISE, THE ACCUMULATOR CONTAINS A NON-ZERO VALUE |
| 354 | 354 | ENTER HERE ON EACH COMMAND OR ERROR CONDITION |
| 356 | 356 | PRINT D> PROMPT, WHERE D IS DISK NAME |
| 359 | 359 | DEFAULT DMA ADDRESS IS AT BUFF |
| 361 | 361 | THE NAME CANNOT BE AN AMBIGUOUS REFERENCE |
| 363 | 363 | CHECK FOR AN INTRINSIC FUNCTION |
| 365 | 365 | INDEX IS IN THE ACCUMULATOR |
| 366 | 366 | INDEX IN D,E |
| 368 | 368 | PC CHANGES TO THE PROPER INTRINSIC OR USER FUNCTION |
369 427 | 369 427 | DIRECTORY SEARCH |
| 370 | 370 | FILE ERASE |
| 371 | 371 | TYPE FILE |
| 372 | 372 | SAVE MEMORY IMAGE |
| 373 | 373 | FILE RENAME |
| 374 | 374 | USER-DEFINED FUNCTION |
| 378 | 378 | UTILITY SUBROUTINES FOR INTRINSIC HANDLERS |
| 379 | 379 | PRINT THE READ ERROR MESSAGE |
| 381 | 381 | READ ERROR$ |
| 383 | 383 | PRINT NO FILE MESSAGE |
| 385 | 385 | NOT FOUND$ |
| 387 | 387 | CONVERT THE BYTE VALUE IN COMFCB TO BINARY |
| 388 | 388 | (B=0, C=11) |
| 389 | 389 | VALUE ACCUMULATED IN B, C COUNTS NAME LENGTH TO ZER0 |
| 391 | 391 | MORE TO SCAN, CONVERT CHAR TO BINARY AND ADD |
| 392 | 392 | VALID? |
| 393 | 393 | SAVE VALUE! MOV A,B ;MULT BY 10 |
| 395 | 395 | RECOVER VALUE |
| 398 | 398 | *8+*2 = *10 |
| 399 | 399 | +DIGIT |
| 400 | 400 | FOR ANOTHER DIGIT |
| 402 | 402 | END OF DIGITS, CHECK FOR ALL BLANKS |
| 403 | 403 | BLANKS? |
| 405 | 405 | RECOVER VALUE! RET |
| 407 | 407 | MOVE 3 CHARACTERS FROM H,L TO D,E ADDRESSES |
| 413 | 413 | BUFF + A + C TO H,L FOLLOWED BY FETCH |
| 416 | 416 | CHANGE DISKS FOR THIS COMMAND, IF REQUESTED |
| 417 | 417 | CLEAR DISK NAME FROM FCB |
| 418 | 418 | NO ACTION IF NOT SPECIFIED |
| 419 | 419 | ALREADY SELECTED |
| 421 | 421 | RETURN TO ORIGINAL DISK AFTER COMMAND |
| 422 | 422 | NO ACTION IF NOT SELECTED |
| 423 | 423 | SAME DISK |
| 426 | 426 | INDIVIDUAL INTRINSICS FOLLOW |
| 428 | 428 | COMFCB GETS FILE NAME |
| 429 | 429 | CHANGE DISK DRIVES IF REQUESTED |
| 430 | 430 | MAY BE EMPTY REQUEST |
| 431 | 431 | SKIP FILL OF ??? IF NOT 8LANK |
| 432 | 432 | SET COMFCB TO ALL ??? FOR CURRENT DISK |
| 433 | 433 | LENGTH OF FILL ????????,??? |
| 435 | 435 | NOT A BLANK REQUEST, MUST BE IN COMFCB |
| 436 | 436 | FIRST ONE HAS BEEN FOUND |
| 437 | 437 | NOT FOUND MESSAGE |
| 440 | 440 | ANOTHER FCB FOUND, PRINT PROMPT |
| 444 | 444 | COMPUTE POSITION OF NAME IN BUFFER |
| 445 | 445 | GET THE LOCATION OF THE ELEMENT |
| 447 | 447 | C CONTAINS BASE INDEX INTO BUFF FOR DIR ENTRY |
| 448 | 448 | START WITH FIRST CHARACTER OF NAME |
| 449 | 449 | BUFF+A+C FETCHED |
| 450 | 450 | DELETE TRAILING BLANKS |
| 451 | 451 | CHECK FOR BLANK TYPE |
| 452 | 452 | FIRST CHAR OF TYPE |
| 453 | 453 | TERMINATE |
| 454 | 454 | CHAR PRINTED |
| 456 | 456 | CHECK FOR BREAK BETWEEN NAMES |
| 457 | 457 | FOR ANOTHER CHAR |
| 458 | 458 | PRINT A BLANK BETWEEN NAMES |
| 461 | 461 | END OF CURRENT ENTRY |
| 462 | 462 | CHECK FOR INTERRUPT AT KEYBOARD |
| 463 | 463 | ABORT DIRECTORY SEARCH |
| 464 | 464 | FOR ANOTHER ENTRY |
| 465 | 465 | END OF DIRECTORY SCAN |
| 469 | 469 | CANNOT BE ALL ???'S |
| 472 | 472 | ERASING ALL OF THE DISK |
| 475 | 475 | BAD INPUT |
| 477 | 477 | OK, ERASE THE ENTIRE DISKETTE |
| 478 | 478 | OTHERWISE ERROR AT RETCOM |
| 485 | 485 | ALL FILES (Y/N)?$ |
| 488 | 488 | DON'T ALLOW ?'S IN FILE NAME |
489 524 | 489 524 | OPEN THE FILE |
| 490 | 490 | ZERO FLAG INDICATES NOT FOUND |
| 491 | 491 | FILE OPENED, READ 'TIL EOF |
| 492 | 492 | READ FIRST BUFFER |
| 493 | 493 | LOOP ON BPTR |
| 494 | 494 | END BUFFER |
| 495 | 495 | CARRY IF B, 1,...,127 |
| 496 | 496 | READ ANOTHER BUFFER FULL |
| 497 | 497 | RECOVER ADDRESS CF BPTR |
| 498 | 498 | HARD END OF FILE |
| 499 | 499 | BPTR = 0 |
| 500 | 500 | READ CHARACTER AT BPTR AND PRINT |
| 501 | 501 | BPTR = BPTR + 1 |
| 502 | 502 | H,L ADDRESSES CHAR |
| 505 | 505 | ABORT IF BREAK |
| 508 | 508 | END OF FILE, CHECK FOR ERRORS |
| 513 | 513 | SHOULD BE NUMBER |
| 514 | 514 | CANNOT BE PREFIXED |
| 515 | 515 | RESULTING VALUE IN REGISTER A |
| 516 | 516 | SAVE IT FOR LATER |
| 518 | 518 | SHOULD BE FOLLOWED BY A FILE TO SAVE THE MEMORY IMAGE |
| 520 | 520 | CANNOT BE AMBIGUOUS |
| 521 | 521 | MAY BE A DISK CHANGE |
| 522 | 522 | EXISTING FILE REMOV |
| 523 | 523 | CREATE A NEW FILE ON DISK |
| 525 | 525 | NO DIRECTORY SPACE |
| 526 | 526 | #PAGES TO WRITE IS IN A, CHANGE TO #SECTORS |
| 528 | 528 | H,L IS SECTOR COUNT, D,E IS LOAD ADDRESS |
| 529 | 529 | CHECK FOR SECTOR COUNT ZERO |
| 530 | 530 | MAY BE COMPLETED |
| 531 | 531 | SECTOR COUNT = SECTOR COUNT - 1 |
| 532 | 532 | SAVE IT FOR NEXT TIME AROUND |
| 533 | 533 | NEXT DMA ADDRESS SAVED |
| 534 | 534 | CURRENT DMA ADDRESS SET |
| 536 | 536 | DMA ADDRESS, SECTOR COUNT |
| 537 | 537 | MAY BE DISK FULL CASE |
538 606 | 538 606 | FOR ANOTHER SECTOR |
| 540 | 540 | MUST BE FULL DISK |
| 542 | 542 | END OF DUMP, CLOSE THE FILE |
| 544 | 544 | OTHERWISE CANNOT CLOSE FILE |
| 547 | 547 | NO SPACE$ |
| 548 | 548 | CANNOT CLOSE$ |
| 549 | 549 | RENAME A FILE ON A SPECIFIC DISK |
| 550 | 550 | MUST BE UNAMBIGUOUS |
| 551 | 551 | SAVE FOR LATER COMPARE |
| 552 | 552 | DISK SELECTED |
| 553 | 553 | IS NEW NAME ALREADY THERE? |
| 555 | 555 | FILE DOESN'T EXIST, MOVE TO SECOND HALF OF FCB |
| 557 | 557 | CHECK FOR = OR LEFT ARROW |
| 559 | 559 | OK IF = |
| 561 | 561 | PAST DELIMITER |
| 562 | 562 | PROPER DELIMITER FOUND |
| 564 | 564 | CHECK FOR DRIVE CONFLICT |
| 565 | 565 | PREVIOUS DRIVE NUMBER |
| 567 | 567 | DRIVE NAME WAS SPECIFIED, SAME ONE? |
| 569 | 569 | STORE THE NAME IN CASE DRIVES SWITCHED |
| 570 | 570 | IS OLD FILE THERE? |
| 573 | 573 | EVERYTHING IS OK, ;RENAME THE FILE |
| 577 | 577 | NO FILE ON DISK |
| 579 | 579 | AMBIGUOUS REFERENCE/NAME CONFLICT |
| 581 | 581 | FILE ALREADY EXISTS |
| 583 | 583 | FILE EXISTS$ |
| 586 | 586 | LOAD USER FUNCTION, AND SET UP FOR EXECLUSION |
| 588 | 588 | NO FILE NAME, BUT MAY BE DISK SWITCH |
| 589 | 589 | NO DISK NAME IF 0 |
| 592 | 592 | FILE NAME IS PRESENT |
| 593 | 593 | TYPE ' ' |
594 643 | 594 643 | COM |
| 595 | 595 | FILE TYPE IS SET TO COM |
| 597 | 597 | FILE OPENED PROPERLY, READ IT INTO MEMORY |
| 598 | 598 | TRANSIENT PROGRAM BASE |
| 599 | 599 | SAVE DMA ADDRESS |
| 602 | 602 | SECTOR LOADED, SET NEW DMA ADDRESS AND COMPARE |
| 604 | 604 | HAS THE LOAD OVERFLOWED? |
| 608 | 608 | END FILE IS 1 |
| 609 | 609 | BACK TO ORIGINAL DISK |
| 611 | 611 | DRIVE NUMBER SET |
| 612 | 612 | MOVE ENTIRE FCB TO MEMO |
| 614 | 614 | RECORD NUMBER SET TO ZERO |
| 616 | 616 | MOVE COMMAND LINE TO BUFF |
| 619 | 619 | FOR ANOTHER SCAN |
| 620 | 620 | FIRST BLANK POSITION FOUND |
| 621 | 621 | READV FOR THE MOVE |
| 623 | 623 | MORE TO MOVE |
| 625 | 625 | B HAS CHARACTER COUNT |
| 628 | 628 | NOW GO TO THE LOADED PROGRAM |
| 629 | 629 | CURRENT DISK AT DISKA |
| 631 | 631 | GONE TO THE LOADED PROGRAM |
| 632 | 632 | MAY COME BACK HERE |
| 636 | 636 | ARRIVE HERE ON COMMAND ERROR |
| 639 | 639 | CANNOT LOAD THE PROGRAM |
| 642 | 642 | LOAD ERROR$ |
| 643 | 643 | FOR COM FILES |
| 646 | 646 | RESET DISK BEFORE END OF COMMAND CHECK |
| 649 | 649 | END OF INTRINSIC COMMAND |
| 650 | 650 | TO CHECK FOR GARBAGE AT END OF LINE |
| 652 | 652 | 0 IN ACCUMULATOR IF NO DISK SELECTED, AND BLANK FCB |
| 658 | 658 | DATA AREAS |
| 659 | 659 | 8 LEVEL STACK |
| 662 | 662 | 'SUBMIT' FILE CONTROL BLOCK |
| 663 | 663 | 00 IF NO SUBMIT FILE, FF IF SUBMITTING |
| 664 | 664 | $$$ |
| 664 | 664 | F1LE NAME IS $$$ |
| 665 | 665 | SUB |
| 665 | 665 | FILE TYPE IS SUB |
| 666 | 666 | RECORD COUNT FILED |
| 667 | 667 | DISK MAP |
| 670 | 670 | COMMAND FILE CONTROL BLOCK |
| 671 | 671 | FIELDS FILLED IN LATER |
| 672 | 672 | CURRENT RECORD TO READ/WRITE |
674 677 | 674 677 | COMMAND BUFFER |
| 675 | 675 | MAX BUFFER LENGTH |
| 676 | 676 | COMMAND LENGTH (FILLED IN BY DOS) |
| 678 | 678 | ADDRESS OF NEXT TO SCAN |
| 679 | 679 | STARTING ADDRESS OF CURRENT F1LLFCB REQUEST |
| 681 | 681 | DISK DIRECTORY COUNT (USED FOR ERROR CODES) |
| 682 | 682 | CURRENT DISK |
| 683 | 683 | SELECTED DISK FOR CURRENT OPERATION |
| 684 | 684 | NONE=0, A=1, B=2 ... |
| 685 | 685 | BUFFER POINTER |